package apuesta.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.management.Query;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.hibernate.StatelessSession;

import com.google.gson.Gson;

import apuesta.dto.EventoDto;
import apuesta.dto.ReporteGanaciasDto;
import apuesta.dto.UsuarioDto;
import apuesta.dto.UsuarioDto2;
import apuesta.hibernate.HibernateFactoryApuesta;
import apuesta.service.ReporteService;

/**
 * Servlet implementation class Reportes
 */
public class Reportes extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doProces(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doProces(request, response);
	}

	private void doProces(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		PrintWriter out = response.getWriter();
		try{
			int accion = Integer.parseInt(request.getParameter("action"));
			System.out.println("action: "+accion);
			if(accion == 2){
				//tipo reporte: ganancias apuesta
				List<ReporteGanaciasDto> ganancias = ReporteService.reporteGanancia();
				for (ReporteGanaciasDto r : ganancias) {
					System.out.print("cantidad: "+r.getCantidadGenerada());
					System.out.print(" descripcion: "+r.getDescripcion_Evento());
					System.out.println(" pozo: "+r.getPozo_Evento());
				}
				request.setAttribute("listaGanancias", ganancias);
				RequestDispatcher rd = request.getRequestDispatcher("/reporteGanancia.jsp");
				rd.include(request, response);
				//rd.forward(request, response);
			}else if(accion == 1){
				//tipo reporte: ganadores apuestas
				System.out.println("Se traera los ganadores");
				int id_evento = Integer.parseInt(request.getParameter("id_evento"));
				List<UsuarioDto2> ganadores = ReporteService.listaGanadores(id_evento);
				System.out.println("normal: "+ganadores.size());
				
				Gson gson = new Gson();
				out.write(gson.toJson(ganadores));
			}
		}catch(Exception ex){
			System.err.println("Error en reporte servlet: "	 );
		}finally{
			out.close();
		}
	}

}
